package com.xyh.transaction.service;

import com.github.pagehelper.PageInfo;
import com.xyh.transaction.entity.User;
import com.xyh.transaction.entity.dto.user.*;
import com.xyh.transaction.entity.vo.GenderVo;
import com.xyh.transaction.entity.vo.ReturnUserVo;
import com.xyh.transaction.entity.vo.StatusVo;
import org.springframework.http.ResponseEntity;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;
import java.util.Set;

public interface UserService {

    User findByNameAndPassword(String name, String password);

    ReturnUserVo login(User user);

    void register(EditOrAddDto addUser);

    void logout();

    PageInfo<User> list(UserPageDto userPageDto);

    ResponseEntity<byte[]> exportUserList(SearchDto searchDto);

    Set<GenderVo> getGender();

    Set<StatusVo> getStatus();

    void changeStatus(ChangeDto changeDto);

    void restPassword(RestPwdDto restPwdDto);

    void delete(ArrDto arrDto);

    void updateUser(EditOrAddDto editOrAddDto);

    void saveUser(MultipartFile file, Boolean isCover);

    List<Integer> getRouteIdList(Integer userId);

    void setPassword(User user);

    void addUserRole(Integer id, Set<String> roleNames);
}
